package com.smartleanx.module.hrm.util.esign.constant;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 企业/组织授权配置项
 *
 * @author yanglihao
 */
public class OrgAuthScope {

    // 企业/组织授权通用
    public static final List<String> ORG_COMMON_SCOPE = new ArrayList<String>() {
        {
            add(GET_ORG_IDENTITY_INFO);
            add(GET_PSN_IDENTITY_INFO);
            add(ORG_INITIATE_SIGN);
            add(PSN_INITIATE_SIGN);
            add(MANAGE_ORG_MEMBER);
            add(MANAGE_ORG_SEAL);
            add(MANAGE_ORG_TEMPLATE);
            add(USE_ORG_TEMPLATE);
            add(MANAGE_ORG_RESOURCE);
            add(MANAGE_PSN_RESOURCE);
        }
    };

    // 授权允许获取企业/组织的基本信息（需要授权获取的只有企业的法定代表人证件号，其他信息不授权可直接获取）
    public static final String GET_ORG_IDENTITY_INFO = "get_org_identity_info";
    // 授权允许获取经办人个人用户的账号信息（姓名、手机号/邮箱、证件号等）
    public static final String GET_PSN_IDENTITY_INFO = "get_psn_identity_info";

    // 授权允许代表企业/组织用户发起合同签署以及查询合同签署详情
    public static final String ORG_INITIATE_SIGN = "org_initiate_sign";
    // 授权允许代表经办人个人用户发起合同签署以及查询合同签署详情
    public static final String PSN_INITIATE_SIGN = "psn_initiate_sign";

    // 授权允许获取企业/组织用户的组织成员的查询、新增、编辑、删除权限
    public static final String MANAGE_ORG_MEMBER = "manage_org_member";
    // 授权允许获取企业/组织用户的印章的查询、新增、编辑、授权、删除权限
    public static final String MANAGE_ORG_SEAL = "manage_org_seal";
    // 授权允许获取企业/组织用户的模板的查询、新增、编辑、复制、删除权限
    public static final String MANAGE_ORG_TEMPLATE = "manage_org_template";
    // 授权允许获取企业/组织用户的模板的使用权限
    public static final String USE_ORG_TEMPLATE = "use_org_template";
    // 授权允许获取企业/组织用户的印章、组织成员等资源的管理权限（不包含用印权限）
    public static final String MANAGE_ORG_RESOURCE = "manage_org_resource";
    // 授权允许获取经办人个人用户的印章等资源的管理权限
    public static final String MANAGE_PSN_RESOURCE = "manage_psn_resource";

    // 授权允许获取企业/组织用户的用印审批信息
    public static final String ORG_APPROVAL_INFO = "org_approval_info";

    // 授权允许获取企业/组织用户套餐订单的使用权限
    public static final String USE_ORG_ORDER = "use_org_order";

    // 权限标识转中文
    public static final Map<String, String> ORG_AUTH_SCOPE_NAME = new HashMap<String, String>() {
        {
            put("get_org_identity_info", "授权允许获取企业/组织的基本信息（企业名称、统一社会信用代码、法人信息）");
            put("org_initiate_sign", "授权允许代表企业/组织用户发起合同签署以及查询合同签署详情");
            put("manage_org_member", "授权允许获取企业/组织用户的组织成员的查询、新增、编辑、删除权限");
            put("manage_org_seal", "授权允许获取企业/组织用户的印章的查询、新增、编辑、授权、删除权限");
            put("manage_org_template", "授权允许获取企业/组织用户的模板的查询、新增、编辑、复制、删除权限");
            put("use_org_template", "授权允许获取企业/组织用户的模板的使用权限");
            put("manage_org_resource", "授权允许获取企业/组织用户的印章、组织成员等资源的管理权限（不包含用印权限）");
        }
    };
}
